﻿using System;
namespace matrixdotnet.CommonDAL
{
    public interface IDataEntity
    {
        DataEntityState EntityState { get; }

        event EventHandler<DataEntityDirtyEventArgs> Dirty;
        event EventHandler<DataEntityDeletedEventArgs> Deleted;
        event EventHandler<DataEntityConstraintIntegrityEventArgs> ConstraintIntegrity;

        int Create();
        void MarkDeleted();
        int Delete();
        int Update();
    }
}
